The Title of the Web Page

SDL_INIT :

Cette fonction est obligatoire d'un un programme SDL, elle initialise SDL en fonction des differentes librairies que vous aurez besoin
pour votre application. Voici les librairies qui peuvent etre utilisée dans SDL :

- SDL_INIT_TIMER - Initialise les timer de SDL
- SDL_INIT_AUDIO - Initialise la fonction Audio de SDL
- SDL_INIT_VIDEO - Initialise la fonction Video de SDL
- SDL_INIT_CDROM - Initialise la fonction CD-Rom de SDL
- SDL_INIT_JOYSTICK - Initialise la fonction pour la gestion du Joystcik de SDL
- SDL_INIT_NOPARACHUTE - Desactive le Cache de protection SDL qui oblige a ferme la fenetre SDL lors d'une erreur, une fois désactiver l'application peut planter.
- SDL_INIT_EVENTTHREAD - Initialise la gestion des Thread dans SDL (Non gérée par QRapid-SDL)
- SDL_INIT_EVERYTHING - Initialise tous les librairies.

La Syntax :

SDL_INIT ( La fonction d'initialisation )

Exemple :

' Initialisation de la fonction Video de SDL

SDL_INIT(SDL_INIT_VIDEO)

Vous pouvez aussi ajouté plusieur fonction en meme temps si vous avez par exemple besoin d'utiliser le mode video + le joystick

' Initialisation de la fonction Video & Joystick

SDL_INIT(SDL_INIT_VIDEO + SDL_INIT_JOYSTICK)


SDL_WasInit :

Demande a SDL qu'elle librairie sont actuellement initialisé.

La Syntax :

SDL_WasInit( La Fonction d'initialisation )
Se rapporter a SDL_Init pour les fonction d'initialisation de SDL

Exemples :

' Initialisation de SDL Joystick & Video

SDL_Init(SDL_INIT_VIDEO + SDL_INIT_JOYSTICK)

' On verifie quelle fonction est initialiser

Resultat = SDL_WasInit(SDL_INIT_VIDEO + SDL_INIT_JOYSTICK)

if Resultat = 0 then showmessage("SDL Video & Joystick initialisé") else showmessage("SDL Video & Joystick Non-Initialisé")


SDL_InitSubSystem :

Cette fonction est une fonction supplementaire à SDL_Init vous permettant dans votre programmation d'initialisé une librairie de SDL aprés avoir utilisé SDL_INIT.

La Syntax :

SDL_InitSubSystem( La fonction d'initialisation )

Les Fonctions d'initialisation :

Elle sont identique a SDL_INIT.
 - SDL_INIT_TIMER - Initialise les timer de SDL
- SDL_INIT_AUDIO - Initialise la fonction Audio de SDL
- SDL_INIT_VIDEO - Initialise la fonction Video de SDL
- SDL_INIT_CDROM - Initialise la fonction CD-Rom de SDL
- SDL_INIT_JOYSTICK - Initialise la fonction pour la gestion du Joystcik de SDL
- SDL_INIT_NOPARACHUTE - Desactive le Cache de protection SDL qui oblige a ferme la fenetre SDL lors d'une erreur, une fois désactiver l'application peut planter.
- SDL_INIT_EVENTTHREAD - Initialise la gestion des Thread dans SDL (Non gérée par QRapid-SDL)
- SDL_INIT_EVERYTHING - Initialise tous les librairies.

Exemples :

' Initialisation SDL

SDL_INIT(SDL_INIT_VIDEO)

' Plus loin dans mon programme nous avons besoin du joystick

SDL_InitSubSystem(SDL_INIT_JOYSTICK)


SDL_QuitSubSystem :

Désinitialisation une fonction , SDL_Init_Timer , audio, video ou autres pour ne plus l'utilisée dans votre programme.

La Syntax :

SDL_QuitSubSystem( La Fonction d'initialisation )
Se rapporter a SDL_Init pour les fonction d'initialisation de SDL

Exemples :

' Initialisation SDL du Joystick

SDL_INIT(SDL_INIT_JOYSTICK)

' Plus tard dans mon programme nous n'avons plus besoin du joystick

SDL_QuitSubSystem(SDL_INIT_JOYSTICK)


SDL_Quit :

Quitte la fenetre SDL et la librairie SDL.

La Syntax :

Variable = SDL_Quit()

Exemples :

' Initialisation

SDL_Init(SDL_INIT_VIDEO)

' On Quitte

a=SDL_QUIT()


Couleur SDL Prédéfini :

Couleur predefini dans QRapid-SDL, c'est couleur on été prédéfini pour permettre de programmer rapidement,
vous pouvez bien entendu, crée vos couleur en hexadecimal vous meme comme vous le permet Rapid-Q.

La Syntax :

SDLColor_(Couleur prédefini)

Les Couleurs prédéfini :

SDLColor_Blanc
SDLColor_Bleu
SDLColor_Rouge
SDLColor_Vert
SDLColor_Jaune
SDLColor_Violet
SDLColor_BleuVert
SDLColor_Orange
SDLColor_Rose
SDLColor_GrisClair
SDLColor_GrisMoyen
SDLColor_Grisfonce
SDLColor_Marron
SDLColor_Noir

Les couleur etant écrit en toute lettre devant SDLColor.


SDL_RECT :

Defini une zone rectangulaire, pour l'animation de sprite ou le positionnement d'une image dans une SDL_Surface

La Syntax :

dim variable as SDL_RECT

variable.x
variable.y
variable.w
variable.h

X,Y position X & Y dans une SDL_Surface
W,H Width & Height dans une SDL_Surface

Exemples :

' Init

dim position as SDL_RECT

SDL_INIT(SDL_INIT_VIDEO)
ecran = SDL_SETVIDEOMODE(320,240,32,SDL_SWSURFACE)

sprite = SDL_LoadBMP_RW(SDL_RWFromFile("sprite.bmp","rb"),1) : ' Avec un fond vert en RVB sous Paint 0 , 255 , 0

' On enleve le mask

SDL_SetColorKey(sprite, SDL_SRCCOLORKEY, &H00FF00)

' On Blitte & Position

position.x = 100 : position.y = 200

SDL_BlitSurface(sprite, NULL, ecran, position)

' On affiche et on bloque le programme 3 seconde pour voir

SDL_Flip(ecran)
Sleep(3)


SDL_FILLRECT :

Remplie une surface avec une couleur données (comme le seau dans paint)

La Syntax :

SDL_FILLRECT ( SDL_Surface , SDL_Rect , Couleur Hexadecimal )

Exemples :

' Ma SDL en bleu

SDL_INIT(SDL_INIT_VIDEO)
monecran = SDL_SETVIDEOMODE(640,480,32,SDL_SWSURFACE)

SDL_FILLRECT(monecran , NULL , SDLColor_Rose)

' Affichage

SDL_Flip(monecran)

showmessage("Tous en rose")


SDL_BlitSurface :

Blit la surface, image ou autre en memoire pour realiser par la suite la mise a jour de votre ecran grace a SDL_Flip

La Syntax :

SDL_BlitSurface ( SDL_Surface*(1), Source SDL_Rect*(2), SDL_Surface Fenetre*(3), Position SDL_Rect*(4))

* - (1) Sdl_Surface = La surface a blitté sur votre fenetre SDL (Image que vous aurez charger ou autre)
- (2) Variable Source SDL_Rect = ce composant de X,Y,W,H la position de l'image que vous desirez prendre mettez NULL si vous desirez tous prendre
- (3) Sdl_Surface Fenetre = Le nom de la variable lorsque que vous avez crée votre fenetre SDL
- (4) Position SDL_RECT = la position ou sera placer votre image sur la fenetre SDL. X,Y,W,H

Exemples :

' Blitté une Surface a L'ecran

SDL_INIT(SDL_INIT_VIDEO)
monecran = SDL_SETVIDEOMODE(800,600,32,SDL_SWSURFACE)

' On charge une image

imageDeFond = SDL_LoadBMP_RW(SDL_RWFromFile("lac_en_montagne.bmp","rb"),1)

' On la colle sur l'ecran on la Blitte donc

SDL_BlitSurface(imagedefond, NULL, ecran, NULL)

' Et Enfin on mais a jour l'ecran avec un FLIP

SDL_Flip(monecran)

' On bloque avec un Sleep pour que l'on voye le resultat 3 seconde

Sleep(3)


SDL_FREESURFACE :

Libere de la memoire la SDL_SURFACE (cause courante de perte de memoire dans un programme) :

La Syntax :

SDL_FREESURFACE ( SDL_SURFACE )

Exemples :

Aucun


SDL_LOCKSURFACE :

Bloque une surface SDL, ne permettant plus sa mise a jour par Flip :

La Syntax :

SDL_LOCKSURFACE ( SDL_SURFACE )

Exemples :

Aucun


SDL_UNLOCKSURFACE :

Debloque une surface SDL, bloqué par SDL_LockSurface :

La Syntax :

SDL_UNLOCKSURFACE ( SDL_SURFACE )

voir aussi SDL_Locksurface

Exemples :

Aucun


SDL_FLIP :

Cette fonction mais a jour la Surface_SDL, permet de passé de l'ecran en construction en memoire à l'ecran que
l'utilisateur vois :

La Syntax :

SDL_FLIP ( SDL_SURFACE )

Exemples :

' Mise a jour

SDL_INIT(SDL_INIT_VIDEO)
screen = SDL_SETVIDEOMODE(800,600,32,SDL_SWSURFACE)

' On paint l'ecran en Blanc

SDL_FILLRECT(screen,NULL,SDLColor_Blanc)

' On mais a jour l'ecran pour voir

SDL_Flip(screen)

sleep(3)


SDL_VideoDriverName :
Permet d'obtenir le nom du driver video utiliser pour SDL. Retourne X11 ou Windib sinon si la video n'est pas initialiser 0 ou -1
La Syntax :

SDL_VideoDriverName ( Nom du Buffer , Longueur du Buffer )

Exemples :

' Nom du driver Video Utilisée

SDL_INIT(SDL_INIT_VIDEO)

ecran = SDL_SETVIDEOMODE(800,600,32,SDL_SWSURFACE)

dim NameBuffer as string * 256

nom$ = SDL_VideoDriverName( NameBuffer, len( NameBuffer ) )

showmessage(nom$)


SDL_SETVIDEOMODE :

Cette fonction crée une fenetre SDL avec une surface elle est obligatoire si vous voulez vous servir de SDL. C'est sur cette fenetre que tous ce passe.

La Syntax :

SDL_SETVIDEOMODE(Taille de la fenetre en X, Taille de la fenetre en Y, Profondeur de couleur exprimée en Bits, Mode de la fenetre)

Profondeur de couleur supporter sur SDL :

- 8 Bits
- 16 Bits
- 32 Bits

Mode de la Fenetre :

- SDL_SWSURFACE - L'affichage de la fenetre et calculer par le processeur & la memoire de l'ordinateur (plus rapide, mais utilise beaucoup de CPU)
- SDL_HWSURFACE - L'affichage de la fenetre et calculer par la carte graphique (trés rapide, le CPU n'est pas solicité)
- SDL_ASYNCBLIT - Mode asynchrone pour les blit
- SDL_ANYFORMAT - SDL n'emulera pas un Bpp non disponible.
- SDL_HWPALETTE - SDL peut accèder a la pallette video (meilleur couleur)
- SDL_DOUBLEBUF - Active le double buffering (nécessite SDL_HWSURFACE)
- SDL_FULLSCREEN - Passe en mode plein écran
- SDL_OPENGL - Démarrer avec le support OpenGL (non disponible dans cette version de QRapid-SDL)
- SDL_RESIZABLE - Vous pouvez redimensionner la fenetre
- SDL_NOFRAME - Cache le contour de la fenetre comme en fullscreen

Exemple :

' Fenetre en 640x480 32 Bits en plein ecran
' CTRL+ALT+SUPP pour fermer la fenetre. car aucun evenement declarée

SDL_INIT(SDL_INIT_VIDEO)

SDL_SETVIDEOMODE( 640 , 480 , 32 , SDL_FULLSCREEN )

Vous pouvez comme dans SDL_INIT ajouté plusieur mode dans SDL_SETVIDEOMODE comme ceci :

SDL_SETVIDEOMODE( 640 , 480 , 32 , SDL_SWSURFACE + SDL_FULLSCREEN )


SDL_VideoModeOk :
Permet de savoir quelle resolution est supporter par la machine de l'utilisateur de votre programme, SDL_VideoModeOk renvoie 0 si le mode n'est pas supportée.
La Syntax :

SDL_VideoModeOk ( Taille de la Fenetre en X, Taille de la fenetre en Y, Profondeur de couleur exprimée en Bits, Mode de la Fenetre)
Mode de la fenetre & Profondeur de couleur se referée a SDL_SETVIDEOMODE
Exemples :

' Test de differente resolution pour savoir s'il sont supportée

SDL_INIT(SDL_INIT_VIDEO)

mode1=SDL_VideoModeOK(640, 480, 8, SDL_HWSURFACE)
mode2=SDL_VideoModeOK(640, 480, 16, SDL_HWSURFACE)
mode3=SDL_VideoModeOK(640, 480, 32, SDL_HWSURFACE)
mode4=SDL_VideoModeOK(800, 600, 32, SDL_HWSURFACE)
mode5=SDL_VideoModeOK(1024, 768, 32, SDL_HWSURFACE)
mode6=SDL_VideoModeOK(1152, 864, 32, SDL_SWSURFACE)
mode7=SDL_VideoModeOK(1360, 768, 32, SDL_SWSURFACE)

if mode1 = 0 then mode1$="Non Supportée" else mode1$="Supportée"
if mode2 = 0 then mode2$="Non Supportée" else mode2$="Supportée"
if mode3 = 0 then mode3$="Non Supportée" else mode3$="Supportée"
if mode4 = 0 then mode4$="Non Supportée" else mode4$="Supportée"
if mode5 = 0 then mode5$="Non Supportée" else mode5$="Supportée"
if mode6 = 0 then mode6$="Non Supportée" else mode6$="Supportée"
if mode7 = 0 then mode7$="Non Supportée" else mode7$="Supportée"

showmessage("640,480, 8 Bits : "+mode1$+chr$(13)+"640,480,16 Bits : "+mode2$+chr$(13)+"640,480,32 Bits : "+mode3$+chr$(13)+"800,600,32 Bits : "+mode4$+chr$(13)+"1024,768,32 Bits : "+mode5$+chr$(13)+"1152,864,32 Bits : "+mode6$+chr$(13)+"1360,768, 32 Bits : "+mode7$)


SDL_SetColorKey :

Cette fonction permet de supprimer le mask d'une image sur une Surface_SDL

La Syntax :

SDL_SetColorKey ( SDL_Surface , Methode SetColorKey , Couleur du mask en Hexadecimal )

Methode SetColorKey :

Il existe 2 methode pour SDL_SetColorKey :

- SDL_SRCCOLORKEY - pour définir la couleur transparente.
- SDL_RLEACCEL : pour définir l'accélération RLE si possible. En résumé, cette option permet d'accélérer l'affichage pour des images ayant beaucoup de pixels transparents. (Peut etre combiné a SDL_SRCCOLORKEY)

Exemples :

' Init

SDL_INIT(SDL_INIT_VIDEO)
ecran = SDL_SETVIDEOMODE(320,240,32,SDL_SWSURFACE)

sprite = SDL_LoadBMP_RW(SDL_RWFromFile("sprite.bmp","rb"),1) : ' Avec un fond vert en RVB sous Paint 0 , 255 , 0

' On enleve le mask

SDL_SetColorKey(sprite, SDL_SRCCOLORKEY, &H00FF00)

' On Blitte

SDL_BlitSurface(sprite, NULL, ecran, NULL)

' On affiche et on bloque le programme 3 seconde pour voir

SDL_Flip(ecran)
Sleep(3)


SDL_ShowCursor :

Permet de rendre visible ou non le curseur de la souris sous SDL.

La Syntax :

SDL_ShowCursor ( Valeur Curseur )

Valeur Curseur :

0 = Curseur non visible
1 = Curseur visible.

Les Exemples :

Aucun


SDL_WarpMouse :

Bloque la souris dans une zone defini par les coordonnées X & Y, permet aussi de deplacer celle-ci avec cette
methode.

La Syntax :

SDL_WarpMouse ( X , Y )

Les Exemples :

Aucun


QRapid-SDL v.0.7.0

Qrapid-SDL est une adaptation de SDL pour RapidQ, malgré tous les efforts fourni pour la création de cette Add-on pour RapidQ, il pourrait subsister quelque bugs, si vous en rencontrée merci de nous les signalers par e-mail pour une futur correction : l.jerome45@wanadoo.fr

Qu'est que c'est SDL ?

Simple DirectMedia Layer est une bibliothèque bas-niveau multimédia multi-plateforme conçue pour permettre d'accéder à la carte son, au clavier, à la souris, au joystick & manette, au application 3D par l'intermédiaire d'OpenGL, et au 2D framebuffer pour les applications visuel. Elle est employée par le logiciel de lecture des fichiers MPEG, par les emulateurs, et beaucoup de jeux populaires, y compris pour le portage sur Linux de "Civilisation : Call to power"

SDL fonctionne sur Linux, Windows, Windows CE, BeOS, MacOS, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, et QNX. SDL fonctionne aussi sur d'AmigaOS ainsi que sur la Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS et OS/2, mais c'est adapatation ne sont pas officiel.

SDL est écrit en C, mais travaille avec C++ et plusieurs autres langues, y compris ADA, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, LISP, Lua, ML, C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, et Smalltalk ainsi que RapidQ. (Qui et une adapatation non officiel)

SDL est distribué sous la licence GNU LGPL. Ce qui vous permais de l'employer librement dans des programmes commerciaux tant que vous le liez avec la bibliothèque dynamique.

Mise a jour de QRapid-SDL v0.6.3 !

QRapid-SDL, supporte dans cette nouvelle version :

- La Video
- La Gestion du Joystick
- La Gestion du CD-ROM
- Les Evenements (Partiellement pour l'instant)
- Les Timers (En version Beta)
- La Souris
- Les Information concernant le CPU

Ce que QRapid-SDL ne supporte pas encore :

- La Gestion Audio
- La Gestion des threads
- La Gestion du clavier
- La Gestion des Erreurs SDL

Tous cela sera rajouté au fur et a mesure de l'evolution du project QRapid-SDL, dans c'est prochaine version. Il faut savoir que QRapid-SDL se programme a 90% comme dans les autres language seul quelque terme et methode peuvent changer.